package com.zhihuishu.micro.course.service;

import java.util.List;

import com.zhihuishu.micro.course.model.LessonTestQuestion;

/**
 * @author JinXing
 * @date 2016年10月18日 上午10:49
 * */
public interface LessonTestQuestionService {
	/**
	 * 加载数据
	 * 根据小节id、节id获取视频弹题关联List
	 * @param lessonId 节Id
	 * @param smallLessonId 小节id	
	 * @return
	 * */
	 List<LessonTestQuestion> getLessonTestQuestionListInfo(LessonTestQuestion lessonTestQuestion);
	
	/**
	 * 加载数据
	 * 根据id获取视频弹题关联对象
	 * @param lessonTestQuestionId 
	 * @return
	 * */
	 LessonTestQuestion getLessonTestQuestionInfo(Integer lessonTestQuestionId);
	
	/**
	 * 保存弹题关联对象
	 * @param timer	小节视频打点时间
	 * @param lessonId 节id
	 * @param testQuestionId 试题id
	 * @param smallLessonId  小节id
	 * @param isDelete	是否删除  0.否1.是  默认保存0	
	 * @return
	 * */
	
	public LessonTestQuestion save(LessonTestQuestion lessonTestQuestion);
	
	/**
	 * 删除弹题关联对象
	 * @param lessonTestQuestionId 弹题关联id
	 * @return
	 * */
	public Integer remove(Integer lessonTestQuestionId);
	
	/**
	 * 修改弹题关联对象
	 * @param id 弹题关联id
	 * @param timer	小节视频打点时间
	 * @param lessonId 节id
	 * @param testQuestionId 试题id
	 * @param smallLessonId  小节id
	 * @param isDelete	是否删除  0.否1.是  默认保存0	
	 * @return
	 * */
	public LessonTestQuestion update(LessonTestQuestion lessonTestQuestion);
	
	//
	
	/** 
	* @Title: updateLessonTestRedisByAddLesson 
	* @Description: 添加一个小节，弹题的缓存与数据的变更（一个小节时：视频为节视频，视频打点信息与节id相关联。两个小节时：视频为小节视频，视频打点信息与小节相关联）
	* 				只有一个小节时：1.添加的弹题打点信息的smallLessonId为null
	* 				变成两个小节时:1.需要把第一个小节关联的打点信息的smallLessonId补上 2.将节关联的打点缓存改为第一个小节关联的打点缓存
	* 				两个及两个以上小节时：1.添加的弹题打点信息的smallLessonId不为null
	* @param lessonId 节id
	* @param smallLessonId 小节id (第一个小节的id)
	* @param     设定文件 
	* @return void    返回类型 
	* @throws 
	*/
	public void updateLessonTestByAddLesson(Integer lessonId,Integer smallLessonId);
	
	//
	
	/** 
	* @Title: updateLessonTestRedisByDelLesson 
	* @Description: 删除一个小节，弹题的缓存与数据的变更（一个小节时：视频为节视频，视频打点信息与节id相关联。两个小节时：视频为小节视频，视频打点信息与小节相关联）
	* 				小节删除时：1.需要删除小节关联的打点信息  。
	* 				变成一个小节时：1.需要将小节关联的打点信息的smallLessonId改为null 2.小节关联的打点缓存改为节关联的打点缓存
	* 				两个及两个以上小节时：1.添加的弹题打点信息的smallLessonId不为null 
	* @param lessonId 节id
	* @param smallLessonId 小节id (第一个小节的id)
	* @param     设定文件 
	* @return void    返回类型 
	* @throws 
	*/
	public void updateLessonTestByDelLesson(Integer lessonId,Integer smallLessonId);
}
